前言经常会在网上直播讲课或者点评中看到可以在课件上或者桌面上进行画线标记划重点,其实实现并不难,原理就是在桌面上盖一个透明图层,然后根据鼠标点绘制曲线。今天分享如何通过Qt的QGraphics体系来实现这个功能,以前的文章已经介绍过使用Qt进行曲线绘制及相关原理,所以这里就不再重复了,直接讲关键部分代码。本文Demo下载快捷键说明:数字1表示画线2表示擦除3表示清空,导航键上下分别表示放大和缩小,Esc退出软件首先来看实际效果:录制一个局部动画效果:正文以上效果是通过QGraphics来实现,绘制非矢量图形(在图片上画线)。来看下几个关键点透明由于要实现透视到桌面效果,所以需要投图层设置为透明
概要:本期介绍QListWidget类的使用,包含QListWidget如何添加项、删除项、遍历等操作。一、简介头文件:#include模块:QT+=widgets父类:QListViewQListWidget类提供了一个基于项(QListWIdgetItem)的列表控件,它拥有属于自己的界面。当然,照我们之前说的,它也继承与QWidget类。其界面显示如下图:二、基本操作1.初始化//方式一:QListWidget*listWidget=newQListWidget(this);//方式二://通过UI设计师界面,拖拽一个ListWidget部件到界面。ui->listWidget->set
Qt开发上位机软件建立经典蓝牙通讯之前做了一个具有经典蓝牙通讯功能的Windows上位机软件,在网上学习了相关博客以及参考了官方经典蓝牙例程之后,总结出了使用Qt建立经典蓝牙通讯的步骤,附带相关源码,作为分享开发环境我使用的Qt版本是5.15,使用的CMake构建项目。整体开发使用的IDE是QtCreator,采用的方式是基于widgets的ui设计界面、C++写逻辑的方式。编译使用的是DesktopQt5.15.2MINGW64-bitCMake配置经典蓝牙通讯需要用到Qt的蓝牙模块,需要添加Bluetooth模块:find_package(QTNAMESQt6Qt5REQUIREDCOMP
Qt开发上位机软件建立经典蓝牙通讯之前做了一个具有经典蓝牙通讯功能的Windows上位机软件,在网上学习了相关博客以及参考了官方经典蓝牙例程之后,总结出了使用Qt建立经典蓝牙通讯的步骤,附带相关源码,作为分享开发环境我使用的Qt版本是5.15,使用的CMake构建项目。整体开发使用的IDE是QtCreator,采用的方式是基于widgets的ui设计界面、C++写逻辑的方式。编译使用的是DesktopQt5.15.2MINGW64-bitCMake配置经典蓝牙通讯需要用到Qt的蓝牙模块,需要添加Bluetooth模块:find_package(QTNAMESQt6Qt5REQUIREDCOMP
前言温故而知新。之前新学QT时没怎么注意纯代码创建UI的写法,今天尝试着写了一下,却发现就一个简单的布局,总是显示不出来。所以索性研究了一下#include"ui_mainwindowtest.h"QTCreator自动编译生成的代码,将一些个人收获总结如下。一、QT的UI头文件里有什么?之前一直没注意,仅是创建了一个空白窗口,它的ui头文件里就出现了这么多代码。现将个人见解以备注地形式写在上面。#ifndefUI_MAINWINDOWTEST_H#defineUI_MAINWINDOWTEST_H#include#include#include#include#include#include
前言温故而知新。之前新学QT时没怎么注意纯代码创建UI的写法,今天尝试着写了一下,却发现就一个简单的布局,总是显示不出来。所以索性研究了一下#include"ui_mainwindowtest.h"QTCreator自动编译生成的代码,将一些个人收获总结如下。一、QT的UI头文件里有什么?之前一直没注意,仅是创建了一个空白窗口,它的ui头文件里就出现了这么多代码。现将个人见解以备注地形式写在上面。#ifndefUI_MAINWINDOWTEST_H#defineUI_MAINWINDOWTEST_H#include#include#include#include#include#include
说明:以windows为例,ubuntu操作一样下载好exe执行文件,双击执行时,经常出现下图提示“无法下载存档……”,是由于默认使用的是境外源,有两种解决方式;方式一:挂魔法在线安装方式二:使用国内源清华大学:https://mirrors.tuna.tsinghua.edu.cn/qt/北京理工大学:http://mirror.bit.edu.cn/qtproject/中国互联网络信息中心:http://mirror.bit.edu.cn/qtproject/在qt的exe文件目录内右键-->在终端打开打开终端后在输入下面的命令(我的4.5.2版本,需换成你自己的exe可执行程序),回车后
Qt绘制表白爱心【李珣表白爱心】通过QtPainter进行绘制,具体实现可以参考B站爱心绘制实现1.functions.h#include#include#defineIMAGE_ENLARGE15//心形函数QPointFheart_function(qrealt,qrealshrink_ratio=IMAGE_ENLARGE){qrealx=16*(sin(t)*sin(t)*sin(t));qrealy=-(13*cos(t)-5*cos(2*t)-2*cos(3*t)-cos(4*t));x*=shrink_ratio;y*=shrink_ratio;returnQPointF(x,y
Mip-NeRF360:UnboundedAnti-AliasedNeuralRadianceFields无边界抗锯齿神经辐射场论文提出了mip-NeRF(一种解决采样和混叠的NeRF变体)的扩展,该扩展使用非线性场景参数化、在线蒸馏和基于失真的新正则化器来克服无界场景带来的挑战。将NeRF以及扩展模型应用于大型无界场景有以下挑战:1.参数化。无边界360度场景可以占据欧几里得空间的任意大区域,但mip-NeRF要求3D场景坐标位于有界域中。2.效率。大型和详细的场景需要更多的网络容量,但在训练期间密集地沿每条射线查询大型MLP是昂贵的。3.歧义。无界场景的内容可能位于任何距离处,并且将仅由少
在qt日常使用中,信号与槽机制是绝对不可或缺且常用的,其中的参数一般都会比较简单,bool、int、QString之类的,但当我们想要传递相对比较复杂的参数,例如QVector、QList,以及一些我们自定义的结构体时,就会出现报错:>QOBject::connect:Cannotqueueargumentsoftype'QVector'>(Makesure'QVector'isregistedusingqRegisterMetaType().)原因大概就是信号槽的参数不支持你自定义的类型,只能识别QT库中最基本的类型参数,所以需要对自定义类型进行注册qRegisterMetaTypeQVec